// source --> https://www.sns.sk/wp-content/plugins/print-o-matic/printomat.js
/*!
* Print-O-Matic JavaScript v1.8.6
* http://plugins.twinpictures.de/plugins/print-o-matic/
*
* Copyright 2017, Twinpictures
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, blend, trade,
* bake, hack, scramble, difiburlate, digest and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
jQuery(document).ready(function() {
jQuery('.printomatic, .printomatictext').click(function() {
var id = jQuery(this).attr('id');
var target = jQuery(this).data('print_target');
if(!target){
target = jQuery('#target-' + id).val();
}
if (target == '%prev%') {
target = jQuery(this).prev();
}
if (target == '%next%') {
target = jQuery(this).next();
}
var w = window.open('', 'printomatic print page', 'status=no, toolbar=no, menubar=no, location=no');
var print_html = '
' + document.getElementsByTagName('title')[0].innerHTML + '';
if ( typeof print_data != 'undefined' && typeof print_data[id] != 'undefined'){
if ( 'pom_site_css' in print_data[id] && print_data[id]['pom_site_css'] ){
print_html += '';
}
if ( 'pom_custom_css' in print_data[id] && print_data[id]['pom_custom_css']){
print_html += '';
}
//build the blank page
w.document.open();
w.document.write( print_html + '');
w.document.close();
if ( 'pom_do_not_print' in print_data[id] && print_data[id]['pom_do_not_print'] ){
jQuery(print_data[id]['pom_do_not_print']).hide();
}
if ( 'pom_html_top' in print_data[id] && print_data[id]['pom_html_top']){
jQuery(w.document.body).html( print_data[id]['pom_html_top'] );
}
}
var ua = window.navigator.userAgent;
var ie = true;
//rot in hell IE
if ( ua.indexOf("MSIE ") != -1) {
//alert('MSIE - Craptastic');
jQuery(w.document.body).append( jQuery( target ).clone( true ).html() );
}
else if ( ua.indexOf("Trident/") != -1) {
//console.log('IE 11 - Trident');
jQuery(w.document.body).append( jQuery( target ).clone( true ).html() );
}
else if ( ua.indexOf("Edge/") != -1 ){
//console.log('IE 12 - Edge');
//there is a bug in Edge where no nested elements can be appended.
jQuery( target ).each(function(){
var s = jQuery.trim( jQuery( this ).clone( true ).html() );
jQuery( w.document.body ).append( s );
});
}
else{
//console.log('good browser');
jQuery(w.document.body).append( jQuery( target ).clone( true ) );
ie = false;
}
if ( typeof print_data != 'undefined' && typeof print_data[id] != 'undefined'){
if ( 'pom_do_not_print' in print_data[id] ){
jQuery( print_data[id]['pom_do_not_print']).show();
}
if ( 'pom_html_bottom' in print_data[id] && print_data[id]['pom_html_bottom']){
jQuery(w.document.body).append( jQuery.trim( print_data[id]['pom_html_bottom'] ) );
}
}
//for IE cycle through and fill in any text input values... rot in hell IE
if(ie){
jQuery( target ).find('input[type=text]').each(function() {
var user_val = jQuery(this).val();
if(user_val){
var elem_id = jQuery(this).attr('id');
if(elem_id){
w.document.getElementById(elem_id).value = user_val;
}
else{
//we really should have a ID, let's try and grab the element by name attr.
var elem_name = jQuery(this).attr('name');
if(elem_name.length){
named_elements = w.document.getElementsByName(elem_name);
named_elements[0].value = user_val;
}
}
}
});
//select values?
jQuery( target ).find('select').each(function(i) {
console.log('found one: ' + i);
var sel_val = jQuery(this).val();
console.log('value is: ' + sel_val);
if(sel_val){
var elem_id = jQuery(this).attr('id');
if(elem_id){
w.document.getElementById(elem_id).value = sel_val;
}
}
});
}
/* hardcodeed iframe and if so, force a pause... pro version offers more options */
iframe = jQuery(w.document).find('iframe');
if (iframe.length && typeof print_data != 'undefined' && typeof print_data[id] != 'undefined') {
if('pom_pause_time' in print_data[id] && print_data[id]['pom_pause_time'] < 3000){
print_data[id]['pom_pause_time'] = 3000;
}
else if(print_data[id]['pom_pause_time'] === 'undefined'){
print_data[id]['pom_pause_time'] = 3000;
}
}
if(typeof print_data != 'undefined' && typeof print_data[id] != 'undefined' && 'pom_pause_time' in print_data[id] && print_data[id]['pom_pause_time'] > 0){
pause_time = setTimeout(printIt, print_data[id]['pom_pause_time']);
}
else{
printIt();
}
function printIt(){
w.focus();
w.print();
if('pom_close_after_print' in print_data[id] && print_data[id]['pom_close_after_print'] == '1'){
//need a bit of a pause to let safari on iOS render the print privew properly
setTimeout(
function() {
w.close()
}, 1000
);
}
}
});
});